Watermarking a software or data product is an important process, in particular to protect its copyright. Verifying an electronic watermark is also important, since counterfeiters are very inventive in copying software authenticity verification tools. It often requires analysis and a long time to determine whether a software or data product is legitimate or counterfeit. This determination can be very expensive. A method and apparatus is needed by which such a software or data product, here an image or a video stream, can be easily tested for authenticity.
This invention pertains to 3D watermarking using 3D object construction. This invention also pertains to integrated texture mapping, filtering and image geometry displacement.
It is known in the art to computer generate 3D objects, texture them, and project them as a sequence of images on a screen. One way of doing this is with a conventional 3D graphics pipeline. Briefly, a conventional 3D graphics pipeline creates an image by performing the following tasks:
1. A computer model of a geometric surface is created or provided. The computer model can be an array of polygons, described in the computer model in terms of the x, y and z coordinates of its vertices. The polygons are joined together at their edges to form a 3D surface. Alternatively, the computer model can be a set of geometric surfaces that are defined in other ways, e.g. xe2x80x9cimplicitly defined,xe2x80x9d using mathematical equations.
2. A pixel array (or arrays) containing one or more images to be applied to the polygons (or implicitly defined geometric surfaces) as textures is provided. We will refer to this type of pixel array as a xe2x80x9ctexelxe2x80x9d array. We will refer to the individual pixels within the texel array as texels.
3. The texel array is xe2x80x9cboundxe2x80x9d to the polygons or surfaces. In other words, each polygon is associated with a portion of the texel array that contains a description of the appearance (e.g. color, brightness, saturation, a pattern of colors, etc.) that that polygon will exhibit.
4. A 3D graphics pipeline then uses the texel array and computer model of the surface to generate an image. This image is provided as another pixel array that is displayed on a computer monitor or other output device.
While the above-mentioned process is adequate for some purposes, this process is has some shortcomings when one tries to apply certain textures to the computer model of the surface. For example, assume that instead of applying a simple texture contained in a texel array to an object, one tries to apply a pixel array that is a photograph of an object (e.g. a book on a table). The book is, of course, a three-dimensional object. If one simply uses a 3D graphics pipeline to apply such a pixel array to the computer model of the surface, the result will be a surface having a 2D image of a book thereon. In other words, the 3D characteristics of the book will be lost.
Our U.S. patent application Ser. No. 09/361,470 teaches a method for modifying the model of the geometric surface in order to preserve the 3D characteristics of 3D objects depicted in a 2D pixel array when applying the pixel array to a computer model of a geometric surface. This results in the construction of more realistic images to be displayed on a CRT.
A method in accordance with the invention comprises the step of authenticating an object by rendering an image of an electronic watermark. The electronic watermark comprises data corresponding to a first image and a geometric surface. (The first image can be in the form of a pixel or texel array.) The method comprises rendering an image on a display corresponding to the pixel or texel array and the geometric surface to authenticate the watermark. The image is typically rendered using a 3D graphics pipeline. In one embodiment, the image is rendered using a virtual light source that assists in determining whether the watermark is authentic. The geometry is typically applied to a surface, and the geometry is observed (rendered) from a perspective that is orthogonal to that surface (i.e. the geometry is rendered from the perspective of a virtual viewer whose line of site is at an angle of 90xc2x0 with respect to the surface).
The virtual light source is specular (non-diffuse) and provides illumination from a selected angle. By rendering the image using this virtual light source, certain characteristics of the geometry, not otherwise apparent, become visible. Different points on the geometry become visible, and the appearance of these different points is used to authenticate the watermark.
In another embodiment, the image is rendered from a selected perspective. This perspective assists in determining whether the watermark is authentic. In particular, by observing the watermark from this perspective, certain characteristics of the geometry, not otherwise apparent, become visible.
In one embodiment, the electronic watermark is part of a larger collection of data, e.g. video images, still images, software, a data compilation, or other product.
In one embodiment, the electronic watermark is encrypted.
A system in accordance with the present invention comprises a display screen and means for receiving an electronic watermark. The electronic watermark comprises data corresponding to a first image and a geometric surface. The apparatus comprises means for rendering an image using the data corresponding to the first image and the geometric surface. In one embodiment, the means for rendering is a 3D graphics pipeline. The means for rendering renders the image using a virtual light source that assists in determining whether the image is authentic. In another embodiment, the means for rendering renders the image from the perspective of a virtual viewer. The perspective of the virtual viewer assists in determining whether the electronic watermark is authentic.